Lock-Free Data-Structure Iterators
نویسندگان
چکیده
Concurrent data structures are often used with large concurrent software. An iterator that traverses the data structure items is a highly desirable interface that often exists for sequential data structures but is missing from (almost all) concurrent data-structure implementations. In this paper we introduce a technique for adding a linearizable wait-free iterator to a wait-free or a lock-free data structure that implements a set. We use this technique to implement an iterator for the wait-free and lock-free linked-lists and for the lock-free skip-list.
منابع مشابه
On Lock-Free Work-stealing Iterators for Parallel Data Structures
In modern programming high-level data-structures are an important foundation for most applications. With the rise of multicores, there is a trend of supporting data-parallel collection operations in general purpose programming languages. These operations are highly parametric, incurring abstraction performance penalties. Furthermore, data-parallel operations must scale when applied to irregular...
متن کاملAnalysis of Concurrent Lock-Free Hash Tries with Constant-Time Operations
Ctrie is a scalable concurrent non-blocking dictionary data structure, with good cache locality, and non-blocking linearizable iterators [4]. However, operations on most existing concurrent hash tries run in O(logn) time. In this technical report, we extend the standard concurrent hash-tries [3] with an auxiliary data structure called a cache1. The cache is essentially an array that stores poin...
متن کاملTowards stronger guarantees: Safer iterators
Iterators are a fundamental part of the STL. They are the link between generic algorithms and containers such that it is possible for the generic algorithms to traverse and access the elements in the container in a homogeneous way. The iterator validity property ensures that iterators are kept valid at any time except when the element is deleted. Modifications of the container should not affect...
متن کاملOn Composability, Efficient Design and Memory Reclamation of Lock-free Data Structures
The transition to multicore processors has brought synchronization, a fundamental challenge in computer science, into focus. In looking for solutions to the problem, interest has developed in the lock-free approach, which has been proven to achieve several advantages over the traditional mutual exclusion approach. This thesis studies challenges in interprocess synchronization in shared memory m...
متن کاملTechniques for Constructing Efficient Lock-free Data Structures
Techniques for Constructing Efficient Lock-free Data Structures Trevor Brown Doctor of Philosophy Graduate Department of Computer Science University of Toronto 2017 Building a library of concurrent data structures is an essential way to simplify the difficult task of developing concurrent software. Lock-free data structures, in which processes can help one another to complete operations, offer ...
متن کامل